package com.jic.market.api.manage;

import com.jic.common.base.vo.PageResult;
import com.jic.common.base.vo.RestResult;
import com.jic.market.request.*;
import com.jic.market.request.ToUpdateStatusRequest;
import com.jic.market.request.manager.patchgroup.PatchGroupIdListQueryRequest;
import com.jic.market.response.PageResponse;
import com.jic.market.response.PatchGrouponThemeResponse;
import com.jic.market.response.PromotionMerchantResponse;
import org.springframework.web.bind.annotation.RequestBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 拼团活动
 *
 * @author guohuayong
 * @date: 2020年01月10日
 */
public interface PatchGrouponThemeApi {
    RestResult<PageResult<PatchGrouponThemeResponse>> queryPage(PatchGrouponThemeRequest t);

    RestResult<?> deleteInfo(PatchGrouponThemeRequest bo) ;
    RestResult<?> close(PatchGrouponThemeRequest bo) ;
    RestResult<?> updateById(PatchGrouponThemeRequest bo) ;

    RestResult<PatchGrouponThemeResponse> detail(PatchGrouponThemeRequest bo);

    RestResult<PageResponse<PatchGrouponThemeResponse>> query(PatchGrouponThemeRequest request);
    RestResult<PromotionMerchantResponse> detail(HttpServletRequest servletRequest, PatchGrouponThemeRequest request);
    RestResult<Integer> deleteByPromotionId(PatchGrouponThemeRequest request);
    RestResult<Integer> saveBatchByPromotionId(PatchGrouponThemeRequest p);
    RestResult<Integer> deleteById(PatchGrouponThemeRequest request);

    RestResult<Long> save(PatchGrouponThemeRequest p);

    /**
     * 更新状态
     * @param req
     * @return
     */
    RestResult<Long> doUpdateStatus(ToUpdateStatusRequest req);

    /**
     * 复制
     * @param request
     * @return
     */
    RestResult<Long> copy(@RequestBody PatchGrouponThemeCopyRequest request);


    /**
     * 保存为模板
     * @param request
     * @return
     */
    RestResult<Long> saveTemplate(@RequestBody PatchGrouponThemeCopyRequest request);


    /**
     * 根据拼团ids查询列表
     * @param request
     * @return
     */
    RestResult<List<PatchGrouponThemeResponse>> queryListByIds(@RequestBody PatchGroupIdListQueryRequest request);




}
